home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / GRAPHICS / POV_3 / SCENES / ADVANCED / STELL.POV < prev   
Encoding:
Text File  |  2002-02-22  |  21.2 KB  |  418 lines

  1. /*
  2.       STELLATED PLATONIC SOLIDS for POV-Ray 2.2
  3.       =========================================
  4.      Constructed by Grant Hutchison [100047,144]  
  5. Much data and encouragement from Tom Gettys [72730,2013]
  6. Other data from "Polyhedron Models" by Magnus Wenninger
  7.  
  8. Declared below are several stellated forms of the simple
  9. Platonic solids. The file has a slightly complicated structure,
  10. in an effort to provide the maximum information in the smallest
  11. file size.
  12.  
  13. Three objects are declared which can be used in POV-Ray scenes:
  14.  
  15. Stellated_Octahedron 
  16. Stellated_Dodecahedron 
  17. Stellated_Icosahedron 
  18.  
  19. (The cube and tetrahedron have no stellated forms.) 
  20. The file is therefore divided into three sections, each dealing 
  21. with one of these solids. The stellations come in several different 
  22. forms, depending on the shape of their faces. The octahedron 
  23. has a single stellation, the dodecahedron has three, and the 
  24. icosahedron has 59 different stellations, 15 of which are given 
  25. here.  Each type of face is declared as a union of different 
  26. triangles, and is given the name of the stellated solid it will form. 
  27. One of these faces is then chosen to be the face of the final 
  28. stellation. For instance, in the DODECAHEDRA section, you will find 
  29. the following declaration:
  30.  
  31. // ***********************************************************
  32. // CHANGE FACE DECLARED BELOW TO CONSTRUCT A NEW DODECAHEDRON
  33. #declare Dodecahedral_Face = object {Great_Dodecahedron_Face}
  34. // ***********************************************************
  35.  
  36. Dodecahedral_Face is then "plugged in" to the standard dodecahedral
  37. model to form the final Stellated_Dodecahedron. In this case, the
  38. form generated will be the great dodecahedron. Similar declarations,
  39. highlighted in stars, appear after the face declarations in the 
  40. OCTAHEDRA and ICOSAHEDRA sections.
  41. So to generate a particular solid, insert the name of its face object
  42. into the relevant highlighted face declaration, as above. *Don't*
  43. cross boundaries between solids - plugging a dodecahedral face into
  44. the icosahedral stellation will have messy results!
  45. Standard colour schemes are provided in each section: obviously, you
  46. can play with these as you like. For reference, the face of the basic 
  47. "parent" solid is also declared at the start of each section.
  48.  
  49. Each face is initially declared to scale with the parent solid, but
  50. the resulting stellations can vary widely in size, making it difficult
  51. to examine them all from a standard viewpoint. Therefore, each face
  52. declaration includes a "scale" statement, which reduces the stellation
  53. to a standard size: using this statement, all the stellations are
  54. generated so that (when suitably orientated) they can rest with their 
  55. points against the plane y, -1. The stellations with icosahedral
  56. symmetry require a rotation before they will sit neatly in this way:
  57. details are given at the start of each section. If you want to see
  58. all the stellations to scale with each other, just "comment out" the
  59. "scale" statement in the face declarations.
  60. */
  61.  
  62. #include "colors.inc"
  63.  
  64. /*
  65. ======================================================================
  66. OCTAHEDRA
  67.  
  68. The octahedron has only one stellation, the Stella Octangula. It
  69. fits neatly inside a unit cube when correctly scaled. Also included
  70. for reference is the basic octahedron.
  71. */
  72.  
  73. #declare Basic_Octahedron_Face =
  74. triangle {<0, 1.414213, -1>, <1.224745, -0.707107, -1>, <-1.224745, -0.707107, -1>}
  75.  
  76. #declare Stella_Octangula_Face =
  77. triangle {<0, -2.828426, -1>, <2.449490, 1.414213, -1>, <-2.449490, 1.414213, -1>
  78.   scale <0.577350, 0.577350, 0.577350>
  79. }
  80.  
  81. // *********************************************************
  82. // CHANGE FACE DECLARED BELOW TO CONSTRUCT A NEW OCTAHEDRON
  83. #declare Octahedral_Face = object {Stella_Octangula_Face}
  84. // *********************************************************
  85.  
  86. #declare Stellated_Octahedron = 
  87. union {
  88.   object {Octahedral_Face rotate <35.264390, 45, 0> pigment {color Blue}}
  89.   object {Octahedral_Face rotate <35.264390, 135, 0> pigment {color White}}
  90.   object {Octahedral_Face rotate <35.264390, 225, 0> pigment {color Blue}}
  91.   object {Octahedral_Face rotate <35.264390, 315, 0> pigment {color White}}
  92.   object {Octahedral_Face rotate 180*z rotate <-35.264390, 45, 0> pigment {color White}}
  93.   object {Octahedral_Face rotate 180*z rotate <-35.264390, 135, 0> pigment {color Blue}}
  94.   object {Octahedral_Face rotate 180*z rotate <-35.264390, 225, 0> pigment {color White}}
  95.   object {Octahedral_Face rotate 180*z rotate <-35.264390, 315, 0> pigment {color Blue}}
  96. }
  97.  
  98. /*
  99. =========================================================================
  100. DODECAHEDRA
  101.  
  102. The three stellations of the dodecahedron are declared below.
  103. They are:
  104.  
  105. Small stellated dodecahedron*
  106. Great dodecahedron*
  107. Great stellated dodecahedron
  108.  
  109. The basic dodecahedron is also declared, for reference.
  110. Stellations marked with stars have icosahedral symmetry. To see them
  111. "standing" on three of their points, add "rotate 37.377368*x" to the 
  112. final object before viewing.
  113. */
  114.  
  115. #declare Basic_Dodecahedron_Face =
  116. union {
  117.   triangle {<0, 0, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1>}
  118.   triangle {<0, 0, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 72*z}
  119.   triangle {<0, 0, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 144*z}
  120.   triangle {<0, 0, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 216*z}
  121.   triangle {<0, 0, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 288*z}
  122. }
  123.  
  124. #declare Small_Stellated_Dodecahedron_Face =
  125. union {
  126.   triangle {<0, 2, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1>}
  127.   triangle {<0, 2, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 72*z}
  128.   triangle {<0, 2, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 144*z}
  129.   triangle {<0, 2, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 216*z}
  130.   triangle {<0, 2, -1>, <0.449028, 0.618034, -1>, <-0.449028, 0.618034, -1> rotate 288*z}
  131.   scale <0.562777, 0.562777, 0.562777>
  132. }
  133.  
  134. #declare Great_Dodecahedron_Face =
  135. union {
  136.   triangle {<0, 0, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1>}
  137.   triangle {<0, 0, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 72*z}
  138.   triangle {<0, 0, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 144*z}
  139.   triangle {<0, 0, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 216*z}
  140.   triangle {<0, 0, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 288*z}
  141.   scale <0.562777, 0.562777, 0.562777>
  142. }
  143.  
  144. #declare Great_Stellated_Dodecahedron_Face =
  145. union {
  146.   triangle {<0, -5.236068, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1>}
  147.   triangle {<0, -5.236068, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 72*z}
  148.   triangle {<0, -5.236068, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 144*z}
  149.   triangle {<0, -5.236068, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 216*z}
  150.   triangle {<0, -5.236068, -1>, <1.175570, -1.618034, -1>, <-1.175570, -1.618034, -1> rotate 288*z}
  151.   scale <0.236068, 0.236068, 0.236068>
  152. }
  153.  
  154. // ***********************************************************
  155. // CHANGE FACE DECLARED BELOW TO CONSTRUCT A NEW DODECAHEDRON
  156. #declare Dodecahedral_Face = object {Great_Dodecahedron_Face}
  157. // ***********************************************************
  158.  
  159. #declare Stellated_Dodecahedron =
  160. union {
  161.   object {Dodecahedral_Face rotate <26.565051, 36, 0> pigment {color Blue}}
  162.   object {Dodecahedral_Face rotate <26.565051, 108, 0> pigment {color Magenta}}
  163.   object {Dodecahedral_Face rotate <26.565051, 180, 0> pigment {color Red}}
  164.   object {Dodecahedral_Face rotate <26.565051, 252, 0> pigment {color Yellow}}
  165.   object {Dodecahedral_Face rotate <26.565051, 324, 0> pigment {color Green}}
  166.   object {Dodecahedral_Face rotate 180*z rotate <-26.565051, 0, 0> pigment {color Red}}
  167.   object {Dodecahedral_Face rotate 180*z rotate <-26.565051, 72, 0> pigment {color Yellow}}
  168.   object {Dodecahedral_Face rotate 180*z rotate <-26.565051, 144, 0> pigment {color Green}}
  169.   object {Dodecahedral_Face rotate 180*z rotate <-26.565051, 216, 0> pigment {color Blue}}
  170.   object {Dodecahedral_Face rotate 180*z rotate <-26.565051, 288, 0> pigment {color Magenta}}
  171.   object {Dodecahedral_Face rotate -90*x pigment {color White}}
  172.   object {Dodecahedral_Face rotate 90*x pigment {color White}}
  173. }
  174.  
  175.  
  176. /*
  177. ===================================================================
  178. ICOSAHEDRA
  179.  
  180. There are fifty-nine stellations of the icosahedron. A selection
  181. are declared below. They are:
  182.  
  183. Compound of five tetrahedra
  184. Compound of ten tetrahedra
  185. Compound of five octahedra
  186. First stellation
  187. Second stellation*
  188. Third stellation
  189. Fourth stellation
  190. Sixth stellation*
  191. Seventh stellation
  192. Ninth stellation*
  193. Tenth stellation
  194. Fourteenth stellation
  195. Fifteenth stellation
  196. Great icosahedron*
  197. Final stellation
  198.  
  199. The basic icosahedron is also declared, for reference.
  200. Stellations marked with stars have icosahedral symmetry. To see them
  201. "standing" on three of their points, add "rotate 37.377368*x" to the 
  202. final object before viewing.
  203. */
  204.  
  205. #declare Basic_Icosahedron_Face =
  206. triangle {<0, 0.763932, -1>, <0.661584, -0.381966, -1>, <-0.661584, -0.381966, -1>}
  207.  
  208. #declare Compound_Five_Tetrahedra_Face =
  209. triangle {<1.070466, 2.618034, -1>, <1.732051, -2.236068, -1>, <-2.802517, -0.381966, -1>
  210. //(alternative declaration)
  211. //union {
  212. //  triangle {<0, 0.763932, -1>, <-0.408881, 1.472136, -1>, <1.070466, 2.618034, -1>}
  213. //  triangle {<1.070466, 2.618034, -1>, <1.323169, 0.763932, -1>, <0.408881, 1.472136, -1>}
  214. //  triangle {<0, 0.763932, -1>, <-0.408881, 1.472136, -1>, <1.070466, 2.618034, -1> rotate 120*z}
  215. //  triangle {<1.070466, 2.618034, -1>, <1.323169, 0.763932, -1>, <0.408881, 1.472136, -1> rotate 120*z}
  216. //  triangle {<0, 0.763932, -1>, <-0.408881, 1.472136, -1>, <1.070466, 2.618034, -1> rotate 240*z}
  217. //  triangle {<1.070466, 2.618034, -1>, <1.323169, 0.763932, -1>, <0.408881, 1.472136, -1> rotate 240*z}
  218.   scale <0.419469, 0.419469, 0.419469>
  219. }
  220.  
  221. #declare Compound_Ten_Tetrahedra_Face =
  222. union {
  223.   triangle {<1.070466, 2.618034, -1>, <1.732051, -2.236068, -1>, <-2.802517, -0.381966, -1>}
  224.   triangle {<-1.070466, 2.618034, -1>, <-1.732051, -2.236068, -1>, <2.802517, -0.381966, -1>}
  225.   scale <0.419469, 0.419469, 0.419469>
  226. }
  227.  
  228. #declare Compound_Five_Octahedra_Face =
  229. union {
  230.   triangle {<0.535233, -1.309017, -1>, <0.866025, 1.118034, -1>, <-1.401258, 0.190983, -1>}
  231.   triangle {<-0.535233, -1.309017, -1>, <-0.866025, 1.118034, -1>, <1.401258, 0.190983, -1>}
  232.   scale <0.678716, 0.678716, 0.678716>
  233. }
  234.  
  235. #declare First_Stellation_Face =
  236. union {
  237.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -0.894427, -1>}
  238.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -0.894427, -1> rotate 120*z}
  239.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -0.894427, -1> rotate 240*z}
  240.   scale <0.937962, 0.937962, 0.937962>
  241. }
  242.  
  243. #declare Second_Stellation_Face =
  244. union {
  245.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1>}
  246.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1> rotate 120*z}
  247.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1> rotate 240*z}
  248.   triangle {<1.070466, 2.618034, -1>, <1.732051, -2.236068, -1>, <-2.802517, -0.381966, -1>}
  249.   triangle {<-1.070466, 2.618034, -1>, <-1.732051, -2.236068, -1>, <2.802517, -0.381966, -1>}
  250.   scale <0.236068, 0.236068, 0.236068>
  251. }
  252.  
  253. #declare Third_Stellation_Face =
  254. union {
  255.   triangle {<0, 0.763932, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1>}
  256.   triangle {<0, 0.763932, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1> rotate 120*z}
  257.   triangle {<0, 0.763932, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1> rotate 240*z}
  258.   scale <0.419469, 0.419469, 0.419469>
  259. }
  260.  
  261. #declare Fourth_Stellation_Face =
  262. union {
  263.   triangle {<0.535233, -1.309017, -1>, <0.478727, -1.723607, -1>, <1.732051, -2.236068, -1>}
  264.   triangle {<-0.535233, -1.309017, -1>, <-0.478727, -1.723607, -1>, <-1.732051, -2.236068, -1>}
  265.   triangle {<0, 1.788854, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1>}
  266.   triangle {<0.535233, -1.309017, -1>, <0.478727, -1.723607, -1>, <1.732051, -2.236068, -1> rotate 120*z}
  267.   triangle {<-0.535233, -1.309017, -1>, <-0.478727, -1.723607, -1>, <-1.732051, -2.236068, -1> rotate 120*z}
  268.   triangle {<0, 1.788854, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1> rotate 120*z}
  269.   triangle {<0.535233, -1.309017, -1>, <0.478727, -1.723607, -1>, <1.732051, -2.236068, -1> rotate 240*z}
  270.   triangle {<-0.535233, -1.309017, -1>, <-0.478727, -1.723607, -1>, <-1.732051, -2.236068, -1> rotate 240*z}
  271.   triangle {<0, 1.788854, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1> rotate 240*z}
  272.   scale <0.419469, 0.419469, 0.419469>
  273. }
  274.  
  275. #declare Sixth_Stellation_Face =
  276. union {
  277.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1>}
  278.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1> rotate 120*z}
  279.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1> rotate 240*z}
  280.   triangle {<0, 0.763932, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1>}
  281.   triangle {<0, 0.763932, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1> rotate 120*z}
  282.   triangle {<0, 0.763932, -1>, <1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1> rotate 240*z}
  283.   scale <0.236068, 0.236068, 0.236068>
  284. }
  285.  
  286. #declare Seventh_Stellation_Face =
  287. union {
  288.   triangle {<0.661584, -0.381966, -1>, <1.732051, -2.236068, -1>, <0.535233, -1.309017, -1>}
  289.   triangle {<-0.661584, -0.381966, -1>, <-1.732051, -2.236068, -1>, <-0.535233, -1.309017, -1>}
  290.   triangle {<0.661584, -0.381966, -1>, <1.732051, -2.236068, -1>, <0.535233, -1.309017, -1> rotate 120*z}
  291.   triangle {<-0.661584, -0.381966, -1>, <-1.732051, -2.236068, -1>, <-0.535233, -1.309017, -1> rotate 120*z}
  292.   triangle {<0.661584, -0.381966, -1>, <1.732051, -2.236068, -1>, <0.535233, -1.309017, -1> rotate 240*z}
  293.   triangle {<-0.661584, -0.381966, -1>, <-1.732051, -2.236068, -1>, <-0.535233, -1.309017, -1> rotate 240*z}
  294.   scale <0.419469, 0.419469, 0.419469>
  295. }
  296.  
  297. #declare Ninth_Stellation_Face =
  298. union {
  299.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1>}
  300.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1> rotate 120*z}
  301.   triangle {<-0.661584, -0.381966, -1>, <0.661584, -0.381966, -1>, <0, -5.236068, -1> rotate 240*z}
  302.   scale <0.236068, 0.236068, 0.236068>
  303. }
  304.  
  305. #declare Tenth_Stellation_Face =
  306. union {
  307.   triangle {<-0.535233, -1.309017, -1>, <-0.478727, -1.723607, -1>, <-1.732051, -2.236068, -1>}
  308.   triangle {<-0.408881, 1.472136, -1>, <0, 1.788854, -1>, <-1.070466, 2.618034, -1>}
  309.   triangle {<0.408881, 1.472136, -1>, <0.866025, 1.118034, -1>, <1.070466, 2.618034, -1>}
  310.   triangle {<0, -1.527864, -1>, <0.478727, -1.723607, -1>, <0.535233, -1.309017, -1>}
  311.   triangle {<-0.535233, -1.309017, -1>, <-0.478727, -1.723607, -1>, <-1.732051, -2.236068, -1> rotate 120*z}
  312.   triangle {<-0.408881, 1.472136, -1>, <0, 1.788854, -1>, <-1.070466, 2.618034, -1> rotate 120*z}
  313.   triangle {<0.408881, 1.472136, -1>, <0.866025, 1.118034, -1>, <1.070466, 2.618034, -1> rotate 120*z}
  314.   triangle {<0, -1.527864, -1>, <0.478727, -1.723607, -1>, <0.535233, -1.309017, -1> rotate 120*z}
  315.   triangle {<-0.535233, -1.309017, -1>, <-0.478727, -1.723607, -1>, <-1.732051, -2.236068, -1> rotate 240*z}
  316.   triangle {<-0.408881, 1.472136, -1>, <0, 1.788854, -1>, <-1.070466, 2.618034, -1> rotate 240*z}
  317.   triangle {<0.408881, 1.472136, -1>, <0.866025, 1.118034, -1>, <1.070466, 2.618034, -1> rotate 240*z}
  318.   triangle {<0, -1.527864, -1>, <0.478727, -1.723607, -1>, <0.535233, -1.309017, -1> rotate 240*z}
  319.   scale <0.419469, 0.419469, 0.419469>
  320. }
  321.  
  322. #declare Fourteenth_Stellation_Face =
  323. union {
  324.   triangle {<-0.535233, -1.309017, -1>, <1.732051, -2.236068, -1>, <0, -0.894427, -1>}
  325.   triangle {<2.802517, -0.381966, -1>, <1.732051, -2.236068, -1>, <1.401258, 0.190983, -1>}
  326.   triangle {<-0.535233, -1.309017, -1>, <1.732051, -2.236068, -1>, <0, -0.894427, -1> rotate 120*z}
  327.   triangle {<2.802517, -0.381966, -1>, <1.732051, -2.236068, -1>, <1.401258, 0.190983, -1> rotate 120*z}
  328.   triangle {<-0.535233, -1.309017, -1>, <1.732051, -2.236068, -1>, <0, -0.894427, -1> rotate 240*z}
  329.   triangle {<2.802517, -0.381966, -1>, <1.732051, -2.236068, -1>, <1.401258, 0.190983, -1> rotate 240*z}
  330.   scale <0.419469, 0.419469, 0.419469>
  331. }
  332.  
  333. #declare Fifteenth_Stellation_Face =
  334. union {
  335.   triangle {<0, 0.763932, -1>, <0.866025, 1.118034, -1>, <1.070466, 2.618034, -1>}
  336.   triangle {<0, 0.763932, -1>, <0.408881, 1.472136, -1>, <-1.070466, 2.618034, -1>}
  337.   triangle {<0, 0.763932, -1>, <-0.866025, 1.118034, -1>, <-0.408881, 1.472136, -1>}
  338.   triangle {<-0.866025, 1.118034, -1>, <-1.070466, 2.618034, -1>, <-1.323169, 0.763932, -1>}
  339.   triangle {<0, 0.763932, -1>, <0.866025, 1.118034, -1>, <1.070466, 2.618034, -1> rotate 120*z}
  340.   triangle {<0, 0.763932, -1>, <0.408881, 1.472136, -1>, <-1.070466, 2.618034, -1> rotate 120*z}
  341.   triangle {<0, 0.763932, -1>, <-0.866025, 1.118034, -1>, <-0.408881, 1.472136, -1> rotate 120*z}
  342.   triangle {<-0.866025, 1.118034, -1>, <-1.070466, 2.618034, -1>, <-1.323169, 0.763932, -1> rotate 120*z}
  343.   triangle {<0, 0.763932, -1>, <0.866025, 1.118034, -1>, <1.070466, 2.618034, -1> rotate 240*z}
  344.   triangle {<0, 0.763932, -1>, <0.408881, 1.472136, -1>, <-1.070466, 2.618034, -1> rotate 240*z}
  345.   triangle {<0, 0.763932, -1>, <-0.866025, 1.118034, -1>, <-0.408881, 1.472136, -1> rotate 240*z}
  346.   triangle {<-0.866025, 1.118034, -1>, <-1.070466, 2.618034, -1>, <-1.323169, 0.763932, -1> rotate 240*z}
  347.   scale <0.419469, 0.419469, 0.419469>
  348. }
  349.  
  350. #declare Great_Icosahedron_Face =
  351. triangle {<4.534568, 2.618034, -1>, <-4.534568, 2.618034, -1>, <0, -5.236068, -1>
  352.   scale <0.236068, 0.236068, 0.236068>
  353. }
  354.  
  355. #declare Final_Stellation_Face =
  356. union {
  357.   triangle {<1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1>, <0, 10.472136, -1>}
  358.   triangle {<4.534568, 2.618034, -1>, <10.139602, 2.618034, -1>, <2.802517, -0.381966, -1>}
  359.   triangle {<-4.534568, 2.618034, -1>, <-10.139602, 2.618034, -1>, <-2.802517, -0.381966, -1>}
  360.   triangle {<1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1>, <0, 10.472136, -1> rotate 120*z}
  361.   triangle {<4.534568, 2.618034, -1>, <10.139602, 2.618034, -1>, <2.802517, -0.381966, -1> rotate 120*z}
  362.   triangle {<-4.534568, 2.618034, -1>, <-10.139602, 2.618034, -1>, <-2.802517, -0.381966, -1> rotate 120*z}
  363.   triangle {<1.070466, 2.618034, -1>, <-1.070466, 2.618034, -1>, <0, 10.472136, -1> rotate 240*z}
  364.   triangle {<4.534568, 2.618034, -1>, <10.139602, 2.618034, -1>, <2.802517, -0.381966, -1> rotate 240*z}
  365.   triangle {<-4.534568, 2.618034, -1>, <-10.139602, 2.618034, -1>, <-2.802517, -0.381966, -1> rotate 240*z}
  366.   scale <0.100898, 0.100898, 0.100898>
  367. }
  368.  
  369. // **********************************************************
  370. // CHANGE FACE DECLARED BELOW TO CONSTRUCT A NEW ICOSAHEDRON
  371. #declare Icosahedral_Face = object {Final_Stellation_Face}
  372. // **********************************************************
  373.  
  374. #declare Stellated_Icosahedron =
  375. union {
  376.   object {Icosahedral_Face rotate <52.622632, 0, 0> pigment {color White}}
  377.   object {Icosahedral_Face rotate <52.622632, 72, 0> pigment {color Blue}}
  378.   object {Icosahedral_Face rotate <52.622632, 144, 0> pigment {color Magenta}}
  379.   object {Icosahedral_Face rotate <52.622632, 216, 0> pigment {color Red}}
  380.   object {Icosahedral_Face rotate <52.622632, 288, 0> pigment {color Green}}
  381.   object {Icosahedral_Face rotate 180*z rotate <10.812317, 0, 0> pigment {color Red}}
  382.   object {Icosahedral_Face rotate 180*z rotate <10.812317, 72, 0> pigment {color Green}}
  383.   object {Icosahedral_Face rotate 180*z rotate <10.812317, 144, 0> pigment {color White}}
  384.   object {Icosahedral_Face rotate 180*z rotate <10.812317, 216, 0> pigment {color Blue}}
  385.   object {Icosahedral_Face rotate 180*z rotate <10.812317, 288, 0> pigment {color Magenta}}
  386.   object {Icosahedral_Face rotate <-10.812317, 36, 0> pigment {color Magenta}}
  387.   object {Icosahedral_Face rotate <-10.812317, 108, 0> pigment {color Red}}
  388.   object {Icosahedral_Face rotate <-10.812317, 180, 0> pigment {color Green}}
  389.   object {Icosahedral_Face rotate <-10.812317, 252, 0> pigment {color White}}
  390.   object {Icosahedral_Face rotate <-10.812317, 324, 0> pigment {color Blue}}
  391.   object {Icosahedral_Face rotate 180*z rotate <-52.622632, 36, 0> pigment {color White}}
  392.   object {Icosahedral_Face rotate 180*z rotate <-52.622632, 108, 0> pigment {color Blue}}
  393.   object {Icosahedral_Face rotate 180*z rotate <-52.622632, 180, 0> pigment {color Magenta}}
  394.   object {Icosahedral_Face rotate 180*z rotate <-52.622632, 252, 0> pigment {color Red}}
  395.   object {Icosahedral_Face rotate 180*z rotate <-52.622632, 324, 0> pigment {color Green}}
  396. }
  397.  
  398.  
  399. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  400. // ADD A SCENE     
  401. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  402.  
  403. global_settings { assumed_gamma 2.2 }
  404.  
  405. camera {
  406.    location < 5.0, 5.0, -15.0 >
  407.    direction < 0.0, 0.0, 5.0 >
  408.    up < 0.0, 1.0, 0.0 >
  409.    right < 1.33333, 0.0, 0.0 > 
  410.    look_at < 0.0, 0.0, 0.0 >
  411. }
  412.  
  413. light_source { < 100.0, 100.0, -100.0 > colour rgb 1 }
  414.  
  415. light_source { < -100.0, 0.0, -50.0 > colour rgb 0.5 }
  416.  
  417. object { Stellated_Icosahedron }
  418.